INSERT INTO ASM_indagine_distr


select 'DB1' DB,--co.codice_contratto,
CONCAT (FA.ANNO_BOLLETTAZIONE,CONCAT(SUBSTR(CONCAT ('00',FA.MESE_BOLLETTAZIONE),-2,2) ,
SUBsTR (CONCAT ('00000000',co.CODICE_contratto),-8,8))) CODICE_contratto,
trunc(co.DATA_CHIUSURA)data_chiusura,
concat('IT018E',concat(substr(concat('00000000000',fo.codice_allacciamento),-7,7),substr(fo.progressivo_utenza,-1,1)))pod,
CONCAT (FA.ANNO_BOLLETTAZIONE,CONCAT(SUBSTR(CONCAT ('00',FA.MESE_BOLLETTAZIONE),-2,2) ,
SUBsTR (CONCAT ('00000000',vo.CODICE_COMPETENZA),-8,8))) CODICE_COMPETENZA,
vo.QUANTITA_VOCE,
co.CODICE_TIPO_USO,
UT.TENSIONE_PREVISTA,
CASE WHEN UT.CODICE_MODELLO_CONTATORE_1 LIKE 'M3%' OR UT.CODICE_MODELLO_CONTATORE_1 LIKE 'M2%' THEN 'F' ELSE 
            CASE WHEN UT.CODICE_MODELLO_CONTATORE_1 LIKE 'M4%' THEN 'O' ELSE 'I' END END TIPO_MISUR,
case when ut.CODICE_MODELLO_CONTATORE_3 <> ' ' or ut.CODICE_MODELLO_CONTATORE_1 in( 'M433' ,'M434','M3AM','M3OM') THEN 'SI' ELSE 'NO' END IND_MAX,

(select distinct max(quantita_voce) from DB1.competenze_riepilogo_voci vox where
       fo.CODICE_GESTIONE=vox.CODICE_GESTIONE
       and vo.CODICE_SERVIZIO=vox.CODICE_SERVIZIO
       and vo.CODICE_riferimento=vox.CODICE_RIFERIMENTO
       and vox.CODICE_COMPETENZA=vo.CODICE_COMPETENZA
       and vox.codice_origine_competenza ='B'
       and vox.CODICE_VOCE='110'
       group by
       vox.CODICE_GESTIONE,
       vox.CODICE_SERVIZIO,
       vox.CODICE_RIFERIMENTO,
       vox.CODICE_COMPETENZA)  potenza_impegnata_110,
       co.POTENZA_IMPEGNATA potenza_impegnata_cont,
            CASE WHEN DATA_AVVIO_RICHIESTO < TO_DATE ('01/01/^ANNO Bollettazione aaaa;N;NUMERICO^^','DD/MM/YYYY') 
            THEN TO_DATE ('01/01/^ANNO Bollettazione aaaa;N;NUMERICO;1^^','DD/MM/YYYY')
            ELSE TRUNC(co.DATA_AVVIO_RICHIESTO) END  data_avvio,
            case when co.stato_contratto = 'A' or co.stato_contratto = 'S' or co.stato_contratto = 'F' 
                then to_date('31/12/^ANNO Bollettazione aaaa;N;NUMERICO;1^^','dd/mm/yyyy')
                 else 
                 CASE WHEN co.data_chiusura_richiesta > TO_DATE ('31/12/^ANNO Bollettazione aaaa;N;NUMERICO;1^^','DD/MM/YYYY') 
                 THEN TO_DATE ('31/12/^ANNO Bollettazione aaaa;N;NUMERICO;1^^','DD/MM/YYYY')
                 ELSE 
                 
                 
                 trunc(co.data_chiusura_richiesta) end END data_chiusura_richiesta

 from DB1.forniture fo,DB1.competenze_riepilogo_voci vo,DB1.bollette fa,DB1.contratti co,DB1.utenze ut
where
fo.CODICE_GESTIONE=vo.CODICE_GESTIONE
and fo.CODICE_GESTIONE=fa.CODICE_GESTIONE
and fo.CODICE_GESTIONE=co.CODICE_GESTIONE
and fo.CODICE_SERVIZIO=vo.CODICE_SERVIZIO
and fo.CODICE_SERVIZIO=co.CODICE_SERVIZIO
and fo.CODICE_CONTRATTO=vo.CODICE_RIFERIMENTO
and fo.CODICE_CONTRATTO=co.CODICE_CONTRATTO
and vo.CODICE_COMPETENZA=fa.CODICE_bolletta
and vo.codice_origine_competenza ='B'
and fa.ANNO_BOLLETTAZIONE = ^ANNO Bollettazione aaaa;N;NUMERICO;1^^
--and fa.MESE_BOLLETTAZIONE >= ^DB1 Mese Bollettazione Da mm;N;NUMERICO^^
--and fa.MESE_BOLLETTAZIONE <= ^DB1 Mese Bollettazione A mm;N;NUMERICO^^
--and fa.PROGRESSIVO_BOLLETTAZIONE >= ^DB1 Progressivo_bollettazione Da pp;N;NUMERICO^^
--and fa.PROGRESSIVO_BOLLETTAZIONE <= ^DB1 Progressivo_bollettazione A  pp;N;NUMERICO^^
--and fa.ANNO_ESERCIZIO=^Anno esercizio aaaa;N;NUMERICO^^
and vo.CODICE_VOCE in ('010','010TRAS')
and fo.CODICE_GESTIONE=ut.CODICE_GESTIONE
and fo.CODICE_SERVIZIO=ut.CODICE_SERVIZIO
and fo.CODICE_ALLACCIAMENTO=ut.CODICE_ALLACCIAMENTO
and fo.PROGRESSIVO_UTENZA=ut.PROGRESSIVO_UTENZA
--and fo.codice_allacciamento in(6,46,47,150733,82156)
--and fo.progressivo_utenza = 1
--;
















